Support for wheel mice

Introduction |

Most modern mice are featured with a scroll wheel these days. In some cases the scroll wheel is combined with the middle mouse button. Under RISC OS, pressing the wheel would then reveal the Menu. By default, RISC OS makes only limited use of the scroll wheel, but !HID allows you to dynamically scroll any window currently under the mouse pointer. Unlike under some other operating systems, the window doesn't have to be selected (i.e. have the input focus) for this to work. Scrolling is possible for any window with a vertical scroll bar, including long menus. Support for horizontal scrolling is also included, although not many mice have a horizontal scroll wheel. Alternatively, you may setup one of the extra mouse buttons as a toggle between horizontal and vertical scrolling.

Setting the default scrolling method |

In order to make a window scroll, !HID has to 'talk' to the application that owns the window. Not all programs respond in the same manner to such requests, so !HID may have to be optimised for some applications. Several different scrolling methods have been implemented, so that you may select the method that is best suited for your application. The default method can be configured in Choices. Click Choices... from the iconbar menu and select the Scroll TAB, or select File -> Choices from the menu in the Scroll wheel window of !HID. A window similar to this one will open. In this window, you can set the default scrolling methods for both vertical and horizontal scrolling. All options are explained in the description of this configuration window. By default the method Part of visual area is selected, which works best with most windows. |  |

Setting up exceptions |

As explained before, some application may not behave as expected with the default scrolling method. Such applications can be added to a list of exceptions and an alternative method may be setup. Select Scroll wheel from the iconbar menu to open the scroll wheel exceptions list. A window similar to the one shown below will open.
A new application can be added to this window quite easily. Ensure that the application is running and then select Edit -> Insert new line from the menu inside the window. A new (empty) line will be inserted at the position of the mouse pointer. Alternatively select Add new line at top or Add new line at bottom to add a new line at the top or bottom respectively.

Once a new line is inserted, the window Edit mouse wheel will open. By default, the first field (application name) is left blank and No scrolling will be selected. Click the menu icon to the right of the Application field and select the required application. The menu is devided in two parts separated by a dashed line. The top part shows the currently active tasks, whilst the lower part shows any module tasks. If you are uncertain about the name of an application, you may click the Learn... button and follow the instructions. This allows you to use the mouse to 'point' at the required task and press Enter to confirm. Next select the required scrolling method and the (optional) value. Once you are satisfied, click OK to confirm your settings. Please note that the new settings will only become active after you've saved the new contents of the Scroll wheel window. Until you've done so, a star (*) will be visible in the window's title bar. |  |

Scrolling methods |

As explained before, some applications may not behave as expected with the default scrolling method. For this reason, a number of different scrolling methods have been implemented in !HID. The available methods are explained below: 0. No scrolling This option will protect the window against scrolling with the mouse wheel. It may be used for applications in which wheel mouse scrolling is not desired or in which it causes unexpected results. 1. Part of visual area This is the default method and will work well with most windows and applications. The scrolling distance (for each click of the mouse wheel) is depending on the size of the visible part of the window. The smaller the window is made, the slower it will scroll. The parameter is used to determine the relation between the visible size and the scroll speed. E.g.: when set to 4, each click of the mouse wheel will scroll 1/4th of the visible area. 2. Fixed distance As an alternative to the above method, a fixed distance may be used. In this case the scroll speed is independant of the visible area. This method is preferred e.g. in text editors such as StrongEd. The parameter specifies the scrolling distance with each click of the mouse wheel (in OS units). 3. Arrow up/down key This method sends a series of ArrowUp or ArrowDown key press events to the application. 4. Ctrl-Shift-Arrow up/down key This method is an alternative to the above one. This time, the Control and Shift keys have to be held down whilst pressing the ArrowUp or ArrowDown key. In most editors, this method is used to scroll the screen up or down by a single line. 5. PageUp/PageDown key If the application doesn't support the use of the Arrow keys, you might want to try using the PageUp and PageDown keys instead. 6. Eureka mode Eureka was the most difficult application to be supported by the scrolling software. Although a Eureka window looks exactly like a standard window, all of its window gatgets and buttons are implemented by the application itself rather than by the window manager. Furthermore, Eureka supports split-screen operation, which means that the window can be split in two independant parts both horizontally and vertically. For these reasons, a special Eureka mode has been implemented. It is unlikely that this emthod can be used for any other application. 7. Scroll request This method works by sending a Wimp_ScrollRequest to the application via the window manager. Although this would naturally be the preferred method, it requires the assistence of the application itself. Most applications do not support the scroll request message and the effect is undetermined (i.e. it's up to the application to scroll a single line, a full page, etc.).

Related subjects |

Main index Background information about the WimpScroll module

| © Copyright Paul Reuvers X-Ample Technology bv usb@xat.nl Last changed: Last changed: Thursday, 12 August 2004 - 16:18 CET.